package cc.rengu.igas.bomp.common.dao;

import cc.rengu.igas.bomp.common.entity.MchntSignInfo;

import java.util.List;

/**
 * 商户签约信息表操作接口类
 * Created by 王成 on 2020/3/2
 */
public interface MchntSignInfoMapper {
    /**
     * 登记商户签约信息
     *
     * @param mchntSignInfo 商户签约信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertMchntSignInfo(MchntSignInfo mchntSignInfo) throws Exception;

    /**
     * 更新商户签约信息
     *
     * @param mchntSignInfo 商户签约信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateMchntSignInfoById(MchntSignInfo mchntSignInfo) throws Exception;

    /**
     * 根据非业务主键查询商户签约信息
     *
     * @param instId 多法人标识
     * @param id     非业务主键
     * @return 商户签约信息
     * @throws Exception 异常
     */
    MchntSignInfo selectMchntSignInfoById(String instId, String id) throws Exception;

    /**
     * 根据主键查询商户签约信息
     *
     * @param instId  多法人标识
     * @param mchntNo 商户号
     * @return 商户签约信息
     * @throws Exception 异常
     */
    MchntSignInfo selectMchntSignInfoByPrimaryKey(String instId, String mchntNo) throws Exception;


    /**
     * 根据法人身份信息查询
     *
     * @param instId      机构号
     * @param artifId     证件号码
     * @param artifIdType 证件类型
     * @return 商户签约列表
     * @throws Exception
     */
    List<MchntSignInfo> selectBompMchntSignInfoByArtifId(String instId, String artifId, String artifIdType) throws Exception;


    /**
     * 根据执照信息查询
     *
     * @param instId      机构号
     * @param licenceType 执照类型
     * @param licenceCode 执照号
     * @return 商户签约列表
     * @throws Exception
     */
    List<MchntSignInfo> selectBompMchntSignInfoByLicenceInfo(String instId, String licenceType, String licenceCode) throws Exception;

    /**
     * 根据商户签约信息和法人身份信息查询
     *
     * @param instId      机构号
     * @param licenceType 经营执照类型
     * @param licenceCode 统一社会信息代码
     * @param certType    证件类型
     * @param certNo      证件号码
     * @param mobile      手机号
     * @return 商户签约列表
     * @throws Exception 异常
     */
    List<MchntSignInfo> selectBompMchntSignInfoByLicenceAndCertAndMobile(String instId, String licenceType, String licenceCode, String certType, String certNo, String mobile) throws Exception;
}
